package com.sina.common.util;

import java.math.BigDecimal;

/**
 * Created by Administrator on 2018/1/6 0006.
 */

public class MathUtill {

    public static BigDecimal add(BigDecimal d1, BigDecimal d2) { // 进行加法运算
        return d1.add(d2);
    }

    public static BigDecimal add(double d1, double d2) { // 进行加法运算
        BigDecimal b1 = new BigDecimal(d1);
        BigDecimal b2 = new BigDecimal(d2);
        return b1.add(b2);
    }

    public static BigDecimal adds(BigDecimal[] data, int num) { // 进行加法运算
        BigDecimal b1 = data[0];
        BigDecimal b2 = data[1];
        BigDecimal sum = b1.add(b2);
        for (int i = 2; i < data.length; i++) {
            sum = sum.add(data[i]);
        }
        return sum;
    }

    public static BigDecimal sub(BigDecimal d1, BigDecimal d2) { // 进行减法运算

        return d1.subtract(d2);
    }

    public static BigDecimal sub(double d1, double d2) { // 进行减法运算
        BigDecimal b1 = new BigDecimal(d1);
        BigDecimal b2 = new BigDecimal(d2);
        return b1.subtract(b2);
    }

    public static BigDecimal mul(BigDecimal b1, BigDecimal b2) { // 进行乘法运算

        return b1.multiply(b2);
    }

    public static BigDecimal mul(double b1, double b2) { // 进行乘法运算
        BigDecimal d1 = new BigDecimal(b1);
        BigDecimal d2 = new BigDecimal(b2);
        return d1.multiply(d2);
    }

    public static BigDecimal div(BigDecimal b1, BigDecimal b2, int len) {// 进行除法运算

        return b1.divide(b2, len, BigDecimal.ROUND_HALF_UP);
    }

    public static BigDecimal round(BigDecimal d, int len) { // 进行四舍五入操作

        BigDecimal b2 = new BigDecimal(1);
        // 任何一个数字除以1都是原数字
        // ROUND_HALF_UP是BigDecimal的一个常量，表示进行四舍五入的操作
        return d.divide(b2, len, BigDecimal.ROUND_HALF_UP);
    }


}
